// 和用户相关的路由地址
const express = require("express");
let router = express.Router();
let { uploadimg } = require("../util");
const userModel = require("../models/userModel.js");
const md5 = require("md5");
// 接收前端提交过来的数据和文件
router.post("/adduser", async (req, res) => {
  console.log(req.body); //这里使用req.body无法获取前端提交过来的数据
  // 可以通过 from的parse方法 格式化req里的数据和文件；
  // err ：是否有错误
  // fields ： 数据的字段
  // files ： 上传文件的信息
  try {
    let result = await uploadimg(req);
    console.log(result);
    result.pwd = md5(result.pwd); //利用md5模块加密密码
    result.time = new Date().toLocaleDateString(); //获取数据提交到服务器的日期
    console.log(result);

    //数据全部接收完成后再添加到数据库
    let resobj = await userModel.create(result);
    console.log(resobj);
    res.json({
      //设置返还结果
      info: "添加用户成功",
      status: 1,
    });
  } catch (err) {
    res.json({
      info: "添加用户失败",
      status: 0,
      err,
    });
  }
});
router.get("/getdata", async (req, res) => {
  //获取用户的信息
  try {
    let usersData = await userModel.find();

    // 后端的分页逻辑
    // 一、计算页码 ， 把页码传给前端  。
    let totalCount = usersData.length; //所有数据的数量
    let perpage = 3; //设置每页显示的数据条数
    let pageCount = Math.ceil(totalCount / perpage); //计算总的页码

    // 根据前端传递的页码返还对应的数据
    // 接收前端传递的页码；
    let { p } = req.query;
    console.log(p); //p为当前的页码
    // 根据页码 查询对应的数据
    let successData = await userModel
      .find()
      .skip((p - 1) * perpage)
      .limit(perpage);
    res.json({
      info: "获取用户信息成功",
      status: 1,
      pageCount, //把总页码数传递给前端
      users: successData, //把过滤后的数据传递给前端
    });
  } catch (err) {
    res.json({
      info: "获取用户信息失败",
      status: 0,
      err,
    });
  }
});

//删除用户信息的路由
router.delete("/deluser", async (req, res) => {
  let { _id } = req.query; // 获取delete 传递过来的id数据
  console.log(_id);
  try {
    //通过id删除数据库里对应的数据
    let resobj = await userModel.deleteOne({ _id });
    console.log(resobj);
    res.json({
      info: "删除成功",
      status: 1,
      resobj,
    });
  } catch (err) {
    res.json({
      info: "删除失败",
      status: 0,
      err,
    });
  }
});
module.exports = router;
